package main

import (
	"io"
	"net/http"
	"os"
)

func main() {
	getTest()
}
func httpClientDo() {
	//使用 http.Client.Do 传递请求，可在请求中自定义其他字段，如请求头，transport
	request, _ := http.NewRequest("GET", "url", nil)
	request.Header.Add("Content-Type", "application/json")
	client := http.Client{
		//这里可以自定义 client 信息

		//默认使用DefaultTransport
		//Transport: nil,
		Transport: &http.Transport{
			DisableCompression: true,
		},
		// 指定重定向策略
		// 如果CheckRedirect不为空，客户端将在跟踪HTTP重定向前调用该函数。
		// 两个参数req和via分别为即将发起的请求和已经发起的所有请求，最早的
		// 已发起请求在最前面。
		// 如果CheckRedirect返回错误，客户端将直接返回错误，不会再发起该请求。
		// 如果CheckRedirect为空，Client将采用一种确认策略，将在10个连续
		// 请求后终止

		//CheckRedirect: func(req *http.Request, via []*http.Request) error {
		//
		//},

		// 如果Jar为空，Cookie将不会在请求中发送，并会
		// 在响应中被忽略
		//Jar: nil,

		//定义超时
		//Timeout: nil,
	}
	client.Do(request)
}
func getTest() {
	resp, err := http.Get("http://www.baidu.com")
	checkErr(err)

	defer resp.Body.Close()
	io.Copy(os.Stdout, resp.Body)
}
func postTest() {
	file, _ := os.OpenFile("", 7, os.ModeAppend)
	resp, _ := http.Post("url", "contentType", file)
	//http.PostForm()
	io.Copy(os.Stdout, resp.Body)

}
func checkErr(err error) {
	if err != nil {
		panic(err)
	}
}
